package mx.itesm.pruebadmescenas;

import org.andengine.engine.camera.Camera;
import org.andengine.entity.scene.background.Background;
import org.andengine.entity.sprite.Sprite;
import org.andengine.opengl.util.GLState;

/**
 * La escena que muestra la pantalla inicial
 * 
 * @author Roberto Mtz. Román
 * 
 */
public class EscenaSplash extends EscenaBase
{
	private Sprite splash;	// El fondo de la escena (estático)

	/*
	 * Aquí se crea la escena (elementos gráficos y comportamiento)
	 * @see mx.itesm.pruebadmescenas.EscenaBase#crearEscena()
	 */
	@Override
	public void crearEscena() {
		// Carga óptima del sprite
		splash = new Sprite(0, 0, admRecursos.splashRegion, vbom) {
			@Override
			protected void preDraw(GLState pGLState, Camera pCamera) {
				super.preDraw(pGLState, pCamera);
				pGLState.enableDither(); // Optimización
			}
		};
		
		// Fondo de la pantalla de Splash
		Background fondo = new Background(0, 0, 0.6f); // Azul TEC :)
		setBackground(fondo);
		setBackgroundEnabled(true);

		splash.setScale(0.7f);  // Se puede cambiar la escala de los sprites
		// Centramos la imagen
		splash.setPosition(ProyectoJuego.ANCHO_CAMARA/2, ProyectoJuego.ALTO_CAMARA/2);
		// Se agrega a la escena
		attachChild(splash);
	}

	/**
	 * Este método se ejecuta cuando el usuario oprime una tecla
	 */
    @Override
    public void onBackKeyPressed()
    {

    }

    /*
     * Regresa el tipo de escena
     * @see mx.itesm.pruebadmescenas.EscenaBase#getTipoEscena()
     */
    @Override
    public TipoEscena getTipoEscena()
    {
    		return TipoEscena.ESCENA_SPLASH;
    }
    
    /*
     * Libera los recursos de ésta escena
     * @see mx.itesm.pruebadmescenas.EscenaBase#liberarEscena()
     */
	@Override
	public void liberarEscena() {
		splash.detachSelf();
		splash.dispose();
		this.detachSelf();
		this.dispose();
	}
}